package designPattern.creation.factorypattern.simplefactorypattern;

import designPattern.creation.factorypattern.simplefactorypattern.impl.BMW320;
import designPattern.creation.factorypattern.simplefactorypattern.impl.BMW523;

/**
 * @author 张琪
 * @date 2023/1/28 17:04
 */
public class FactoryBMW {
    /**
     * 生产宝马 -- 方法缺点: 每新增一个型号, 都需要修改工厂类, 不符合开闭原则, 因此需要修改
     * @param code 产品编号
     */
    public void createBMW(int code){
        BMW bmw;
        switch (code) {
            case 320:
                bmw = new BMW320();break;
            case 523:
                bmw = new BMW523();break;
            default:
                bmw = () -> "错误型号, 该型号未投产";
                System.err.println("生产出错");
        }
        System.out.println(bmw.getProductName());
    }
}
